The present invention generally relates to a semiconductor memory and more particularly to a semiconductor memory which is suited for use as a dot image buffer for a printer.
In general, a high-speed printer is equipped with a dot image buffer of a capacity corresponding to at least one sheet of printing paper. In the dot image buffer, dot image data such as character font, graphic data or the like are written word by word (with one word usually consisting of 32 or 16 bits). upon completion of writing data for one sheet of printing paper, the data are read out also on the word-by-word basis from the dot image buffer to be printed on the printing sheet.
At this juncture, functions required for the dot image buffer will be considered. When the image data written in the dot image buffer are to be printed as they are, the data may be read out in the same address order or sequence as they were written. However, when the image is to be printed with a rotation of 90.degree., the image data rotated by 90.degree. have to be read out on the word basis. Besides, in the case of printing on both surfaces of printing paper, function of rotating the image by 180.degree. is required because the printing is first performed on the front surface of printing paper, being followed by the printing on the rear surface after turning the printing paper over. Furthermore, capability of rotating the image by 270.degree. may become necessary, as occasion requires.
A typical prior art LSI destined to be used for a printer controller having the functions mentioned above is disclosed, for example, in an article entitled "LSI For Low/Intermediate Speed Printer Controller Scheduled For Sale" contained in a Japanese Periodical "Nikkei Electronics", No. 429, (Sept. 7, 1987), pp. 80-81. This known LSI destined for the printer controller is a memory of small capacity having a bit array of 64.times.64 bits and so implemented that character fonts (consisting of 16.times.16 bits) are read successively from a character font memory word by word (i.e. on the 16 bit basis) into an internal memory array, being then followed by rotation of 90.degree. and subsequent readout of the word on a 16 bit basis. Now, suppose that the image data in a dot image buffer of a large capacity is rotated with the aid of the LSI of the special type mentioned above by an angle equal to a multiple of 90.degree.. In that case, the LSI of the special type has to be connected at a stage preceding the dot image buffer. The image data read out after rotation are written in the dot image buffer successively on the word by word basis in the manner mentioned above. Upon completion of the writing operation for one character font, the similar processing is repeated for another character font. In this way, character data for one sheet of printing paper can be prepared by executing repeatedly the procedure outlined above.
As the input data for the printer, there can be graphic data, compressed data transmitted from facsimile equipment and others in addition to the character data mentioned above. These graphic data and the compressed data cannot satisfactorily be dealt with through rotation of the fragmentary image data at the stage preceding the dot image buffer in such a manner as disclosed in the abovementioned literature.
In the case of the compressed data, the dot image data can not be definitely determined until expansion of the data for one lateral row or one page has been completed, although it depends on the type of data compression which the data has undergone. Also in the case of the compressed data, the expanded dot image data have to be written sequentially in the dot image buffer. In this conjunction, the dot image buffer is generally required to have a memory capacity of about 2 M bytes for a sheet of printing paper of A3 size and ordinarily has a double memory capacity. For this reason, the dot image buffer is usually constituted by a MOS RAM of a large capacity. For this reason, the dot image buffer has not heretofore been imparted with the rotational readout function. If the LSI disclosed in the literature cited above is to be employed in combination with the dot image buffer of large capacity, the former must be provided in the stage succeeding the latter. In that case, however, the data can be read out only at a low speed because in order to print out the compressed data mentioned above by rotating it on the 90.degree. basis, it is necessary to read out word by word the image data from a given rectangular area of the dot image buffer and write the data in the destined LSI, which operation must be repeated by rotating the image in the dot image buffer by 90.degree..